package au.org.arcs.dss.provider.dataset;

import java.util.List;
import java.io.File;

/**
 * DataSet Transfer Object
 * @author ming
 */
public class DataSet implements java.io.Serializable {
  private String path;
  private String name;
  private boolean directory;
  private boolean file;
  private List<DataSet> descendants;
  private DataSet parent;
  private long lastModified;
  private long length;
  private byte[] data;
  private File fileObject;
  private boolean largeFile;

  /**
   * @return the path
   */
  public String getPath() {
    return path;
  }

  /**
   * @param path the path to set
   */
  public void setPath(String path) {
    this.path = path;
  }

  /**
   * @return the name
   */
  public String getName() {
    return name;
  }

  /**
   * @param name the name to set
   */
  public void setName(String name) {
    this.name = name;
  }

  /**
   * @return the directory
   */
  public boolean isDirectory() {
    return directory;
  }

  /**
   * @param directory the directory to set
   */
  public void setDirectory(boolean directory) {
    this.directory = directory;
  }

  /**
   * @return the file
   */
  public boolean isFile() {
    return file;
  }

  /**
   * @param file the file to set
   */
  public void setFile(boolean file) {
    this.file = file;
  }

  /**
   * @return the descendants
   */
  public List<DataSet> getDescendants() {
    return descendants;
  }

  /**
   * @param descendants the descendants to set
   */
  public void setDescendants(List<DataSet> descendants) {
    this.descendants = descendants;
  }

  /**
   * @return the parent
   */
  public DataSet getParent() {
    return parent;
  }

  /**
   * @param parent the parent to set
   */
  public void setParent(DataSet parent) {
    this.parent = parent;
  }

  /**
   * @return the lastModified
   */
  public long getLastModified() {
    return lastModified;
  }

  /**
   * @param lastModified the lastModified to set
   */
  public void setLastModified(long lastModified) {
    this.lastModified = lastModified;
  }

  /**
   * @return the length
   */
  public long getLength() {
    return length;
  }

  /**
   * @param length the length to set
   */
  public void setLength(long length) {
    this.length = length;
  }

  /**
   * @return the data
   */
  public byte[] getData() {
    return data;
  }

  /**
   * @param data the data to set
   */
  public void setData(byte[] data) {
    this.data = data;
  }

  /**
   * @return the fileObject
   */
  public File getFileObject() {
    return fileObject;
  }

  /**
   * @param fileObject the fileObject to set
   */
  public void setFileObject(File fileObject) {
    this.fileObject = fileObject;
  }

  /**
   * @return the largeFile
   */
  public boolean isLargeFile() {
    return largeFile;
  }

  /**
   * @param largeFile the largeFile to set
   */
  public void setLargeFile(boolean largeFile) {
    this.largeFile = largeFile;
  }
}
